Android : Calculatrice

Créer une calculatrice

1.Layout

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#EBECEC"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#EBECEC"
android:orientation="horizontal"
android:paddingTop="50dp">
<EditText
android:layout_width="match_parent"
android:layout_height="90dp"
android:layout_weight="1"
android:id="@+id/x"
android:hint="Enter un nombre"
android:background="#fff"/>
<TableLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1">

<TableRow>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="+"
android:id="@+id/opplus"
/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="-"
android:id="@+id/opmoins"/>

</TableRow>

<TableRow>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="*"
android:id="@+id/opfois"/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="/"
android:id="@+id/opdivise"/>

</TableRow>

</TableLayout>

<EditText
android:layout_width="match_parent"
android:layout_height="90dp"
android:layout_weight="1"
android:id="@+id/y"
android:hint="Enter un nombre"
android:background="#fff"/>



</LinearLayout>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="="
android:id="@+id/opegale"/>


<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="0"
android:id="@+id/r"
android:textSize="80dp"
android:gravity="center"/>
</LinearLayout>

2.Java


import androidx.appcompat.app.AppCompatActivity;

import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

//View.OnClickListener:une interface qui contient les méthodes qui permettent
// d'écouter les objets graphiques
public class Test1_Calcul extends AppCompatActivity implements
View.OnClickListener{
/*les étapes à suivres:
1.créer les objets grahique(layout design)
2.ajouter un id pour les objets graphiques qui seront utilisés dans Java
3.déclarer pour charque objet graphiques cité dans (2) un objet java de son type
4.lier les objet java cité dans (3) avec les id des objets java cité dans (2)
5.écouter les objets cliquable (button ,imageView,imageButton...)
6.traiter les actions sur chaque objets



*/

//declarer les objets java
EditText x;
EditText y;
Button opplus,opmoins,opdivise,opfois,opegale;
TextView r;


String operation="";
float n=0,m=0,rs=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
//onCreate :c'est la première fonction qui s'éxécute automatiquement
// lorsque on lance l'app
super.onCreate(savedInstanceState);
//lier l'activity java avec l'interface (layout)
setContentView(R.layout.activity_test1__calcul);

//liaison entre les objest graphiques et les objets java
//findviewById =document.getElementByID("id")
x=findViewById(R.id.x);
y=findViewById(R.id.y);
opdivise=findViewById(R.id.opdivise);
opegale=findViewById(R.id.opegale);
opfois=findViewById(R.id.opfois);
opplus=findViewById(R.id.opplus);
opmoins=findViewById(R.id.opmoins);
r=findViewById(R.id.r);

//écoutez les boutons
opmoins.setOnClickListener(this);
opplus.setOnClickListener(this);
opfois.setOnClickListener(this);
opegale.setOnClickListener(this);
opdivise.setOnClickListener(this);

}

//onClick cette opération s'exécute automatiquement lorsque
// on clique sur un bouton ecouté
@Override
public void onClick(View view) {
//traitements selon les boutons cliqués
//view:contient l'objet cliqué
//vérifier les opérations selon l'id:

switch (view.getId())
{
case R.id.opdivise: operation="/"; break;
case R.id.opplus: operation="+"; break;
case R.id.opfois: operation="*"; break;
case R.id.opmoins: operation="-"; break;
case R.id.opegale: if(operation!=""){
/*x :est un EditText
x.getText():retourne la valeur saisie par l'utilisateur
=>x.value
*/

if(!x.getText().toString().isEmpty()
&& !y.getText().toString().isEmpty()){
// var n=parseFloat(x.value)
n=Float.parseFloat(x.getText().toString());
m=Float.parseFloat(y.getText().toString());
switch (operation){

case "+":rs=n+m;break;
case "/":rs=n/m;break;
case "*":rs=n*m;break;
case "-":rs=n-m;break;
}
r.setTextColor(Color.BLACK);
r.setText(""+rs);
}
else {
r.setTextColor(Color.RED);
r.setText("Il faut donner X et Y");
}
}
else
{
r.setTextColor(Color.RED);
r.setText("Erreur operatin manque");
}
}

}
}